"""
28-dars. funksiya
"""

LLLL = [21, 23]
def get_sum(a, b):
    """
    Возращает сумму аргументов a и b.

    :param a: Первый операнд
    :type a: int
    :param b: Второй операнд
    :type b: int
    :return: Return type int
    """
    #    print(a + b)
    return a + b


print(get_sum(1, 2)) # 3
######
a = 6                # global

def f():
    a = 10           # local
    a += 1
    print(a)         #  11  <<<

print(a)             #  6
#######
f()                  #  11  <<<
print(a)             #  6

def f():
    global a
    a += 1
    print(a)         #   7  >>>

print(a)             #   6
f()                  #   7  >>>
print(a)             #   7  >>>


l = [1, '2', 3]

def f(l):
    return [i * 2 for i in l]

print(f(l))        # [2, '22', 6]


def f2(l):
    def get_mult(x):    # pylint: diseble = inconsistent - returnu
        return int(x) * 2
    return [get_mult(i) for i in l]

print(f2(l))       # [2, 4, 6]


def f3(l):
    def get_mult(x):
        if isinstance(x, int):    # isinstance int bo'lsa ko'paytiradi
            return x * 2
    return [get_mult(i) for i in l if get_mult(i)]

print(f3(l))       # [2, 6]


def f4(l):
    """
    map ro'yxatini elementlarini funksiyaga solib chiqaradi.
    """
    def get_mult(x):
        """2 ga ko'paytish"""
        return x * 2
    return list(map(get_mult, l))
# map funksiyani
# ichiga ro'yxatini ichidagilarni har birini
# solib tekshiradi
print(f4(l))       # [2, '22', 6]


"""
1. Дан массив, в котором среди прочих элементов есть слово "odd"
(нечетный). Определите, есть ли в списке число, которое является 
индексом элемента "odd". Напишите функцию, которая будет
возвращать True или False, соответсвенно.  ####

"""

def odd_ball(asl):
    """
    ichida odd bo'lsa chop qil
    """
    return [i for i in asl if i == "odd"]

def odd_ball(asl):
    """
    oddni nechanchi o'rinda ekanligini ko'rsatadi.
    """
    return int(asl.index('odd'))

ROYHAT = [0, 1, 12 ,"odd", 45, 65, 887]
print(ROYHAT.index('odd'))  # 3 qatorda

print(odd_ball(["even",4,"even",7,"even",55,"even",6,"even",10,"odd",3,"even"])) # 10-qatorda # True
print(odd_ball(["even",4,"even",7,"even",55,"even",6,"even",9,"odd",33,"even"])) # 10-qatorda # False
print(odd_ball(["even",10,"odd",2,"even"])) # 2-qatorda # True


"""
2. Напишите функцию find_sum(n), где аргумент функции - это 
конечный элемент последовательности включительно. Функция 
должна вернуть сумму всех чисел последовательности, кратных
3 или 5. Попробуйте решить задачу двумя способами (один из
способов в одну строчку кода).
"""

def find_sum(n):
    """
    chop etadi.
    """
    print(n)
find_sum(5) # return 8 (3 + 5)
find_sum(10) # return 33 (3 + 5 + 6 + 9 + 10)


"""
3. Дан список имен. Выберите в новый список только те имена, которые состоят из 4-х букв.
names = ["Ryan", "Kieran", "Mark", "John", "David", "Paul"] # ["Ryan", "Mark", "John", "Paul"]
"""


def get_names(names):
    pass

